Потоковий шифр на основі генератора BBS

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2012
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Криптологія

Частина тексту файла

Міністерство освіти і науки, молоді та спорту України Національний університет «Львівська Політехніка» Звіт Про виконання лабораторної роботи №1 з курсу «Прикладна криптологія» на тему «Потоковий шифр на основі генератора BBS» Перевірив: Петришин А.В. Львів – 2012 Мета: Створити потоковий шифр з використанням програмного генератора псевдовипадкових послідовностей BBS. Завдання: Скласти програму, яка б реалізовувала шифрування та розшифрування на основі генератора BBS. Код програми на мові JavaScript: <html><head><title>asdf</title></head> <body><form name="asdf"><input type=text name="text"><br> p = <input type=text name="pq"> <span class="key" id="1"></span><br> q = <input type=text name="qp"> <span class="key" id="2"></span><br> x = <input type=text name="xp"> <span class="key" id="3"></span><br> <input type="button" value="Зашифрувати" onclick='Encrypt();'> <input type="button" value="Розшифрувати" onclick='Decrypt();'> </form><script> function Encrypt( ){var text = document.asdf.text.value.toLowerCase(); var cryptotext=""; var mass = new Array( 101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191, 193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283, 293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401, 409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509, 521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631, 641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751, 757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877, 881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997); p = Math.floor(Math.random()*900)+100; while (p%4!=3) p++; q = Math.floor(Math.random()*900)+100; while (q%4!=3) q++; var x=0; do {x = Math.floor(Math.random()*143); x=mass[x];} while ((x==p)||(x==q)); var n = p * q; var p_span = document.getElementById(1); var q_span = document.getElementById(2); var x_span = document.getElementById(3); q_span.innerHTML = q; p_span.innerHTML = p; x_span.innerHTML = x; text=Convert(text);for(i=0;i<text.length;i++) {x=(x*x)%n; s=x%2; cryptotext+=(text.charAt(i)*1+s*1)%2+"";}m="";text="";for(i=0;i<cryptotext.length;i++) {m+=cryptotext.charAt(i); if(m.length==5) {text+=n2l(m);m="";}}alert(text);} function Decrypt( ){var p=document.asdf.pq.value; var q=document.asdf.qp.value;var x=document.asdf.xp.value; var n=p*q;var text=document.asdf.text.value.toLowerCase(); var text=Convert(text);var cryptotext="";var m=""; for(i=0;i<text.length;i++) {x=(x*x)%n; s=x%2; cryptotext+=(text.charAt(i)*1+s*1)%2+"";} text="";for(i=0;i<cryptotext.length;i++) {m+=cryptotext.charAt(i); if(m.length==5) {text+=n2l(m);m="";}}alert(text);} function Convert(a){var b = "";for(i=0;i<a.length;i++) {b+=l2n(a.charAt(i));}return b;} function l2n(l){switch (l) { case 'а': return '00000'; break;case 'б': return '00001'; break;case 'в': return '00010'; break; case 'г': return '00011'; break;case 'д': return '00100'; break;case 'е': return '00101'; break; case 'є': return '00110'; break;case 'ж': return '00111'; break;case 'з': return '01000'; break; case 'и': return '01001'; break;case 'і': return '01010'; break;case 'ї': return '01011'; break; case 'й': return '01100'; break;case 'к': return '01101'; break;case 'л': return '01110'; break; case 'м': return '01111'; break;case 'н': return '10000'; break;case 'о': return '10001'; break; case 'п': return '10010'; break;case 'р': return '10011'; break;case 'с': return '10100'; break; case 'т': return '10101'; break;case 'у': return '10110'; break;case 'ф': return '10111'; break; case 'х': return '11000'; break;case 'ц': return '11001'; break;case 'ч': return '11010'; break; case 'ш': return '11011'; break;case 'щ': return '11100'; break;case 'ь': return '11101'; break; case 'ю': return '11110'; break;case 'я': return '11111'; break;default: return "";}} function n2l(n){switch (n) { ...
Антиботан аватар за замовчуванням

24.01.2013 00:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини